1. Field of the Invention
The present invention relates generally to an improved application testing environment, and in particular to a computer implemented method, data processing system, and computer program product for efficiently stress testing a service oriented architecture based application.
2. Description of the Related Art
As the use of computer technology becomes more prevalent, businesses are increasingly seeking computer applications which address their business needs. These computer applications must be tested prior to implementation, however, to ensure that an application will execute as desired. Applications may be tested using “test cases”, a test case being a sequence of steps that are required to perform a certain action within the application under test. The results of these test cases are then analyzed and evaluated. As many applications are quite complex, several, sometimes hundreds, of test cases are used for the testing of a single application. As test cases must be executed repeatedly throughout the development cycle, they are usually automated in a scripting or programming language to create a “test script”.
For example, a test case may comprise a situation where a database application is tested to determine whether data can be added to the database. A test script is created to implement the test case. The test script may include several steps, instructions, or processes to test this aspect of the application, such as, for example, gaining access to update the database, transmitting the update request; receiving confirmation that the update request has been executed, reading from the database to determine if the data in the update request was stored successfully, and then logging off from the database. Execution of the test script generates an output which indicates whether the application successfully or unsuccessfully performed the test case.
Most performance testing tools are command-based, meaning that they record the requests sent to the system and at test execution time, modify and resend these same requests without any interaction with the client interface. Common command-based testing tools include Rational® Performance Tester (RPT), a product of International Business Machines Corporation, and SilkPerformer®, a product of Borland Software Corporation. However, Service Oriented Architecture (SOA) based applications such as those which send Business Object Documents (BOD) have special requirements for testing. Service Oriented Architecture describes a collection of services that communicate with each other over a network in order to carry out business processes. Communication in an SOA based system may involve either the simple passing of data or it may involve two or more services that coordinate some activity. These services will be loosely coupled. A business object document is an open standard for a message architecture developed by the Open Applications Group Integration Specification (OAGIS) group. Business object documents are used to specify business operations and transfer data among applications, such as exchanging messages between a client and server. The business object document contains the business content and is independent of the communication mechanism.
In a service oriented architecture system, business object documents may be used to communicate requests to a business service or to specify that the business service take some action. The business object document sent to the business service indicates the action to be executed, along with the ancillary data required to perform the action. Within performance test tooling, the business object document request is usually composed as a string and is sent to the business service as part of a service oriented architecture request. However, when an application which performs a business service is under test, the test script to be applied to the application is required to comprise completed business object documents which, as previously mentioned, describe the action to be performed, including all ancillary data needed to perform the action, before the test script may be sent to the server for processing. Thus, a test script generated using existing methods is required to comprise the complete content of a business object document before the test script may be properly executed. As some business object documents are large and complicated, test scripts generated from such documents may become similarly large and as complex. In addition, when a business object document is used in a test script, the test script must know the format of the particular business object document, thereby allowing the test script to know where the test data should be inserted during test execution. Furthermore, as development on a system under test continues, changes to the business object document will typically occur. These changes need to be represented in the test script with minimal effort.